Needs["Graphics`ContourPlot3D`"]

blen = -1.3;
len = 1.0;

varArrow[blen_,  
        len_] := {
Graphics3D[
{
Line[{{blen, 0, 0}, {len, 0, 
                  0}}], 
Line[{{len, 0, 0}, {len - 0.2, 
                  0.08, 0}}], 
Line[{{len, 0, 
                  0}, {len - 0.2, -0.08, 
                  0}}]
}
]
}

s = 0.44 ;

DD = 0;  FF = 0;
zero = 
      ContourPlot3D[
        x  +  s (DD y^2 + FF z^2), {x, -1, 1}, {y, -1, 
          1}, {z, -1, 1}, 
        DisplayFunction -> Identity, 
Boxed ->  
          False]

DD = 1;  FF = 1;
posdef = 
      ContourPlot3D[
        x  +  s (DD y^2 + FF z^2), {x, -1, 1.4}, {y, -1, 
          1}, {z, -1, 1}, 
Boxed ->  False, 
        DisplayFunction -> Identity
  
]

DD = -1;  FF = 1;
semidef  = 
      ContourPlot3D[
        x  +  s (DD y^2 + FF z^2), {x, -1, 1}, {y, -1, 
          1}, {z, -1, 1},  
        Contours ->  {0}, 
Boxed ->  False, 
        DisplayFunction -> Identity
  
]

DD = -1;  FF = -1;
negdef = 
      ContourPlot3D[
        x  +  s (DD y^2 + FF z^2), {x, -1, 1}, {y, -1, 
          1}, {z, -1, 1},  
        Contours ->  {0}, 
Boxed ->  False, 
        DisplayFunction -> Identity
  
]

pRange = 
        PlotRange ->  {{-1.3, 1.3}, {-1.2, 1.2}, {-1.2, 
              1.2}};
pView  =  
        ViewPoint -> {3.241,  -7.049,  2.654};

P3 = 
        Show[semidef, varArrow[-0.9, 1.1],  pRange,  
          pView];

P1 = 
        Show[zero, 
          varArrow[-0.8, 
            0.7],   PlotRange ->  {{-1.3, 2.4}, {-1.2, 
                1.2}, {-1.2, 1.2}},  pView];

P2 = 
        Show[posdef, varArrow[-1.4, 0.6],  pRange,  
          pView];

P4 = 
        Show[negdef, varArrow[-0.7, 1.3],  pRange,  
          pView];

Show[
      GraphicsArray[
{{P1, P2}, 
{P3, 
            P4}}
 (* 
          GraphicsSpacing -> -0.1 *) 
]
]

Show[
      GraphicsArray[
{P1, P2, P3, 
          P4}, 
GraphicsSpacing -> -0.48
]
]

Export["wavepics.eps",  %]